package com.wcj.array;

import java.util.ArrayList;
import java.util.List;

/**
 * 给定一个非负索引 rowIndex，返回「杨辉三角」的第 rowIndex 行。
 *
 * 在「杨辉三角」中，每个数是它左上方和右上方的数的和。
 */
public class 杨辉三角II {

    public static void main(String[] args) {
        getRow(3);
    }

    public static List<Integer> getRow(int rowIndex) {
        List<List<Integer>> result = new ArrayList<>();
        for (int i = 0; i < rowIndex + 1; i++){
            ArrayList<Integer> tmp = new ArrayList<>();
            tmp.add(1);
            result.add(tmp);
        }
        for (int j = 1; j < rowIndex + 1; j++){
            List<Integer> tmp2 = result.get(j);
            for (int x = 1; x < j; x++){

                tmp2.add(result.get(j - 1).get(x - 1) + result.get(j - 1).get(x));

            }
            tmp2.add(1);
        }

        return result.get(rowIndex);
    }


    public List<Integer> getRow2(int rowIndex) {
        List<List<Integer>> result = new ArrayList<>();
        for (int i = 0; i < rowIndex; i++) {
            ArrayList<Integer> tmp = new ArrayList<>();
            tmp.add(1);
            for (int j = 1; j < i; j++) {
                tmp.add(result.get(i - 1).get(j - 1) + result.get(i - 1).get(j));
            }
            tmp.add(1);

            result.add(tmp);
        }
        return result.get(rowIndex);
    }
}
